package day15;

//本类是用来测试多线程Thread的实现演示demo
public class TestThread1 {
    public static void main(String[] args) {
        MyThread t1 = new MyThread();
        MyThread t2 = new MyThread();
        MyThread t3= new MyThread();
        MyThread t4 = new MyThread();
        MyThread t5 = new MyThread();
        MyThread t6 = new MyThread();
        MyThread t7 = new MyThread();
        /*6.这个run()如果直接这样调用，是没有多线程抢占执行的效果的
         * 只是把这两句话看作普通方法的调用，谁先写，就先执行谁*/
        //t1.run();
        //t2.run();
        /*7.start()对应的状态就是就绪状态，会把刚刚新建好的线程加入到就绪队列之中
         * 至于什么时候执行，就是多线程执行的效果，需要等待OS选中分配CPU
         * 8.执行的时候start()底层会自动调用我们重写的run()种的业务
         * 9.线程的执行具有随机性，也就是说t1-t4具体怎么执行
         * 取决于CPU的调度时间片的分配，我们是决定不了的*/
//        t1.start();//以多线程的方式启动线程1，将当前线程变为就绪状态
//        t2.start();//以多线程的方式启动线程2，将当前线程变为就绪状态
//        t3.start();//以多线程的方式启动线程3，将当前线程变为就绪状态
//        t4.start();//以多线程的方式启动线程4，将当前线程变为就绪状态
        t1.run();
        t2.run();
        t3.run();
        t4.run();




    }

}

//自定义一个类继承Thread的类，让这个类变成多线程子类
class MyThread extends Thread {
    @Override
    public void run() {
        for (int i = 0; i < 10; i++) {
            System.out.println(i + "=" + getName());
        }
    }

}
